package src.greed;

public class no53 {//最大子数组和

    public int maxSubArray(int[] nums) {
        if (nums.length == 1){
            return nums[0];
        }

        int result = Integer.MIN_VALUE;
        int count = 0;
        for (int i = 0; i < nums.length; i++) {
            count += nums[i];
            //取区间累计的最大值（相当于不断确定最大子序终止位置）
            if (count > result) {
                result = count;
            }
            //重置最大子序起始位置，因为遇到负数一定是拉低总和
            if (count < 0) {
                count = 0;
            }
        }
        return result;
    }
}
